home *** CD-ROM | disk | FTP | other *** search
/ Amiga Developer CD 2.1 / Amiga Developer CD v2.1.iso / Reference / DevCon / Washington_1988 / Devcon_Extras / Tech_Articles / Bad_Programming < prev    next >
Encoding:
Text File  |  1992-08-27  |  3.2 KB  |  70 lines

  1. * Copyright 1988 Commodore-Amiga, Inc.
  2. * This information is provided "as is"; no warranties are made.  All 
  3. * use is at your own risk. No liability or responsibility is assumed.
  4. * Permission granted to reproduce, provided this notice remains.
  5.  
  6.  
  7.                               IMPORTANT !    
  8.  
  9.        Official Warning to Rom-Jumpers, Structure-Hackers, and Others
  10.        ==============================================================
  11.           From Commodore Engineering, Commodore-Amiga, and C.A.T.S.
  12.  
  13.      We who bring you the Amiga want to make it perfectly clear that
  14. if you don't follow the rules, you WILL break.  
  15.  
  16.      The following practices are NOT supported !
  17.  
  18.        - Jumping directly to ROM code
  19.        - Modifying or depending on private system structures 
  20.        - Depending on the addresses of system structures or free memory
  21.        - Ignoring hardware or software interfacing specifications
  22.  
  23.  
  24.      Do not jump into ROM.  Beware of any example code that calls routines
  25. in the $F80000 to $FFFFFF range.  Those are ROM addresses and those ROM
  26. routines WILL move.   The only supported interface to system ROM code
  27. is through the provided library, device, and resource calls. 
  28.  
  29.      Do not modify or depend on the format of the private system structures.
  30. This includes the poking of copper lists, memory lists, and library bases.
  31.  
  32.      Do not depend on any address containing any particular system structure 
  33. or type of memory.  The system modules dynamically allocate their memory
  34. space when they are initialized.  The addresses of system structures and 
  35. buffers differ with every OS, every model, and every configuration, as
  36. does the amount of free memory and system stack usage. 
  37.  
  38.      If you are using the system libraries, devices, and resources, you
  39. must follow the defined interface.  Assembler programmers (and compiler
  40. writers) must enter functions through the library base jump tables,
  41. with arguments passed as longs and library base address in A6.  Results
  42. returned in D0 must be tested, and the contents of D0-D0/A0-A1 must be 
  43. assumed gone after a system call.  Do not use the TAS instruction.
  44.  
  45.      Do not use assembler instructions which are priviledged on any 
  46. 68000 family processor.  All addresses must be 32 bits.  Do not use
  47. the upper 8 bits for other data.  Do not execute code on your stack 
  48. or put shared system or DOS structures on your stack.  And do not use 
  49. processor dependent software timimg loops for delays.
  50.  
  51.      If you are programming at the hardware level, you must follow hardware
  52. interfacing specifications.  All hardware is NOT the same.  Do not assume 
  53. that low level hacks for speed or copy protection will work on all drives, 
  54. or all keyboards, or all systems, or future systems.  
  55.  
  56.  
  57.      Software distributers who purchase or contract software from
  58. outside programmers must make sure that the programmers are aware
  59. of correct programming practices and are providing software which
  60. will not break on different machines or different OS revisions.
  61.  
  62.  
  63.      We are dedicated to enhancing and expanding the capabilities of
  64. the Amiga hardware and software, while maintaining compatibility
  65. wherever possible for those who follow the rules.  Those who don't
  66. follow the rules cans consider themselves warned.
  67.  
  68.  
  69.  
  70.